import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: a
 * Date: 2022-07-16
 * Time: 11:00
 */
public class JDBCInsert {
    public static void main(String[] args) throws SQLException {
        //1.使用 DataSource 描述MYSQL服务器的位置.
        DataSource dataSource=new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("123456");

        //2. 和数据库服务器建立连接
        Connection connection=dataSource.getConnection();
        //System.out.println(connection);

        //3. 构造SQL语句,JDBC操作数据库,本质仍然是通过SQL来描述数据库操作
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入姓名");
        String name=scanner.next();
        System.out.println("请输入年龄");
        int age=scanner.nextInt();

        String sql="insert into student values(?,?)";

        // 还需要搭配一个特殊类
        PreparedStatement statement=connection.prepareStatement(sql);
        statement.setString(1,name);
        statement.setInt(2,age);

        System.out.println(statement);

        //4. 执行SQL语句
        // 这里insert,update,delete都是通过executeUpdate来执行; select则是通过executeQuery来执行的
        // executeUpdate返回一个整数,表示影响到的行数
        int n=statement.executeUpdate();
        System.out.println("n="+n);

        //5. 释放资源,断开连接
        statement.close();
        connection.close();
    }
}
